package cn.bugstack.springframework.beans.factory.config;

import cn.bugstack.springframework.beans.BeansException;
import cn.bugstack.springframework.beans.factory.ConfigurableListableBeanFactory;

/**
 * <p>允许自定义修改 BeanDefinition 属性信息
 * <p>reference: DerekYRC https://github.com/DerekYRC/mini-spring
 *
 * @author Yaxi.Zhang
 * @since 2022/12/17 09:03
 */
public interface BeanFactoryPostProcessor {
    /**
     * <p>在所有的 BeanDefinition 加载完成后，实例化 Bean 对象之前，提供修改 BeanDefinition 属性的机制
     *
     * @param beanFactory bean工厂
     * @throws BeansException 异常
     */
    void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;
}
